元编程由“程序编程”构成，也就是我们编写编程系统执行的代码，以生成实现真正想要的功能的新代码。通常，术语元编程意味着一种自反属性:元编程组件是程序的一部分，其可生成一段代码(即，程序的另一段或不同的代码)。

为什么使用元编程?与大多数其他编程技术一样，目标是用更少的工作实现更多的功能，其中的工作可以通过代码大小、维护成本等来衡量。元编程的特点是在转换时产生一些用户定义的计算。潜在的动机通常是性能(转换时计算的东西通常可以优化掉)或接口简单(元程序通常比它扩展的要短)或两者兼有。

元编程通常依赖于特征和类型函数的概念，如第19章所述。因此，建议在研究这一章之前先熟悉一下第19章。